;Assembler header file for DCS
;written by DefMod (Oct 26 2000) on Tue Dec 12 19:35:28 2000
;Jonathan Coxhead, jonathan@doves.demon.co.uk, 5 Sept 1995

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET OSLib:oslib.Hdr.Types"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_Toolbox
        GBLS    Get_Toolbox
        ]
        [       :LNOT: :DEF: Toolbox_Hdr
Get_Toolbox                     SETS    "GET OSLib:oslib.Hdr.Toolbox"
        |
Get_Toolbox                     SETS    ""
        ]
        $Get_Toolbox

        [       :LNOT: :DEF: Get_Window
        GBLS    Get_Window
        ]
        [       :LNOT: :DEF: Window_Hdr
Get_Window                      SETS    "GET OSLib:oslib.Hdr.Window"
        |
Get_Window                      SETS    ""
        ]
        $Get_Window

        [       :LNOT: :DEF: DCS_Hdr
        GBLS    DCS_Hdr

;Symbols for constants
Class_DCS                       *       &82A80
DCS_GenerateAboutToBeShown      *       &1
DCS_GenerateDialogueCompleted   *       &2
Action_DCSAboutToBeShown        *       &82A80
Action_DCSDiscard               *       &82A81
Action_DCSSave                  *       &82A82
Action_DCSDialogueCompleted     *       &82A83
Action_DCSCancel                *       &82A84
Error_DCSAllocFailed            *       &80B101
Error_DCSTasksActive            *       &80B102
DCS_FileIcon                    *       &82A800
DCS_Discard                     *       &82A801
DCS_Cancel                      *       &82A802
DCS_Save                        *       &82A803

;Symbols for structure offsets and sizes
DCS_Flags                       *       Bits

                                ^       0
DCS_Object_flags                #       DCS_Flags
DCS_Object_title                #       Toolbox_MsgReference
DCS_Object_title_limit          #       Int
DCS_Object_message              #       Toolbox_MsgReference
DCS_Object_message_limit        #       Int
DCS_Object_alternative_window_name #       Toolbox_StringReference
DCS_Object                      *       @

                                ^       0
DCS_ObjectTemplate_objectflags  #       DCS_Flags
DCS_ObjectTemplate_title        #       Toolbox_MsgReference
DCS_ObjectTemplate_title_limit  #       Int
DCS_ObjectTemplate_message      #       Toolbox_MsgReference
DCS_ObjectTemplate_message_limit #       Int
DCS_ObjectTemplate_alternative_window_name #       Toolbox_StringReference
DCS_ObjectTemplate              *       @

DCS_Full                        *       Toolbox_Full

                                ^       0
DCS_ActionAboutToBeShown_tag    #       Toolbox_PositionTag
DCS_ActionAboutToBeShown_position *       @
DCS_ActionAboutToBeShown_position_top_left #       OS_Coord
                                ^       DCS_ActionAboutToBeShown_position
DCS_ActionAboutToBeShown_position_full #       DCS_Full
DCS_ActionAboutToBeShown        *       @

                                ^       0
DCS_ActionAboutToBeShownBlock_tag #       Toolbox_PositionTag
DCS_ActionAboutToBeShownBlock_position *       @
DCS_ActionAboutToBeShownBlock_position_top_left #       OS_Coord
                                ^       DCS_ActionAboutToBeShownBlock_position
DCS_ActionAboutToBeShownBlock_position_full #       DCS_Full
DCS_ActionAboutToBeShownBlock   *       @

DCS_ActionDiscardBlock          *       Toolbox_ActionHeaderBase

DCS_ActionSaveBlock             *       Toolbox_ActionHeaderBase

DCS_ActionDialogueCompletedBlock *       Toolbox_ActionHeaderBase

DCS_ActionCancelBlock           *       Toolbox_ActionHeaderBase


;Symbols for SWI's and SWI reason codes
XDCS_ClassSWI                   *       &A2A80
DCS_ClassSWI                    *       &82A80

XDCS_PostFilter                 *       &A2A81
DCS_PostFilter                  *       &82A81

XDCS_PreFilter                  *       &A2A82
DCS_PreFilter                   *       &82A82

DCS_GetWindowId                 *       &0
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = dcs (Toolbox_O)
   ;  R2 = &0
   ;Exit
   ;  R0 = window (Toolbox_O)

DCS_SetMessage                  *       &1
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = dcs (Toolbox_O)
   ;  R2 = &1
   ;  R3 -> message (String)

DCS_GetMessage                  *       &2
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = dcs (Toolbox_O)
   ;  R2 = &2
   ;  R3 = buffer (pointer to String)
   ;  R4 = size (Int)
   ;Exit
   ;  R4 = used (Int)

DCS_SetTitle                    *       &3
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = dcs (Toolbox_O)
   ;  R2 = &3
   ;  R3 -> title (String)

DCS_GetTitle                    *       &4
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = dcs (Toolbox_O)
   ;  R2 = &4
   ;  R3 = buffer (pointer to String)
   ;  R4 = size (Int)
   ;Exit
   ;  R4 = used (Int)

        ]
        END
